package leetcode_500;

import java.util.HashMap;
import java.util.Map;

/**
 *@author 周杨
 *NumberOfBoomerangs_447 给定N个2维点集 找出这样的特殊结构的数量 i到j和i到k的距离相同
 *describe:暴力解 用hash存储点集 AC 8%
 *2018年8月22日 上午9:59:13
 */
public class NumberOfBoomerangs_447 {
	
	public static void main(String[] args) {
	}
	
	 public int numberOfBoomerangs(int[][] points) {
		 if(points.length==0||points[0].length==0)
			 return 0;
		 int res=0;
	     for(int i=0;i<points.length;++i) {
	    	 Map<Integer,Integer> hash=new HashMap<Integer,Integer>();
	        	for(int j=0;j<points.length;++j) {
	        		if(i==j)
	        			continue;
	        		int a=points[i][0]-points[j][0];
	        		int b=points[i][1]-points[j][1];
	        		int dis=a*a+b*b;
	        		Integer now=hash.get(dis);
	        		if(now==null) {
	        			hash.put(dis, 1);
	        		}
	        		else
	        			hash.put(dis, now+1);
	        	}
	        	
	        	for(Integer key:hash.keySet()) {
	        		int now=hash.get(key);
	        		res+=now*(now-1);
	        	}
	     }
	     return res;
	 }
}
